Jak kontenery zmieniają skalowalność

 

Określenie „cloud-scale” jest często nadużywane. Wykorzystuje się je w marketingu jako synonim czegoś naprawdę dużego. Fakty są takie, że chmura — a teraz dotyczy to także kontenerów — zmieniła podstawy skalowalności. Zmiana wyniknęła z głębokich różnic między skalowaniem poziomym a pionowym. W pierwszej dekadzie XXI wieku niemal niepodzielnie panowało przekonanie, że skalowanie pionowe to najlepszy sposób na osiągnięcie wymaganej szybkości i skali przetwarzania. Oznaczało to więcej przepustowości, mocy obliczeniowej i pamięci: więcej portów; większą gęstość; szybsze przetwarzanie.

Jednak wraz z nadejściem ery przetwarzania w chmurze zaczęto przywiązywać większą wagę do skalowania poziomego.

Nadal potrzebujemy większej przepustowości i mocy obliczeniowej oraz więcej zasobów, ale nauczyliśmy się mądrze je dystrybuować. Wciąż potrzebujemy też więcej sprzętu, ale teraz uzyskujemy go z wielu źródeł zamiast od jednego, monolitycznego podmiotu. Wszystko zmienił właśnie sposób gromadzenia zasobów. Ponadto na zmianę charakteru skalowalności istotny wpływ miały kontenery.

Obecnie skala zależy od platformy sterującej (control plane). Szybkość interfejsu API używanego do uruchamiania i wycofywania zasobów jest nawet ważniejsza od szybkości samej usługi równoważenia obciążenia. Szybkość wykrywania usług w środowisku, w którym zasoby są uruchamiane i wycofywane w ciągu kilku minut, staje się kluczowa dla dostarczania żądań do dostępnej instancji.

Według raportu Sysdig Container Usage Report 2019 cykl życia ponad połowy kontenerów (52%) wynosi mniej niż pięć minut:

·       22% <= 10 sekund

·       17% <= 1 minuta

·       15% <= 5 minut

Prawie połowa (42%) obsługuje od 201 do 500 instancji kontenerów. Aby zapewnić dokładność, platforma sterująca często aktualizuje komponenty — znacznie częściej niż chmura, a już na pewno częściej niż kiedykolwiek robiły to aplikacje monolityczne.

Kluczowa staje się zatem szybkość, z jaką kontroler ruchu przychodzącego (mechanizm równoważenia obciążenia) jest aktualizowany, tak aby odzwierciedlał bieżącą pulę dostępnych zasobów. W przypadku pomyłki kontrolera żądanie klienta może zostać skierowane do zasobu, który już nie istnieje lub udostępnia zupełnie inną usługę. Tak czy inaczej, jego czas odpowiedzi wydłuża się, ponieważ żądanie zostaje przekierowane do dostępnego zasobu. Klient musi dłużej czekać na odpowiedź i może po prostu zrezygnować.

Wszystko to wskazuje na znaczenie szybkości działania platformy sterującej jako kluczowego czynnika skalowalności aplikacji wdrożonych w środowisku kontenerowym. W ostatecznym rozrachunku oznacza to, że skala platformy sterującej jest ważną kwestią, podobnie jak struktura interfejsu API, jego mechanizmy uwierzytelniania i zatwierdzania żądań oraz aktualizacje. Niezawodna, skalowalna platforma sterowania nie jest tylko miłym dodatkiem, jest dziś koniecznością.

Lori MacVittie, Principal Technical Evangelist, Office of the CTO at F5